package ro.fortech.peaa.service.api;

import java.util.List;

import ro.fortech.peaa.domain.Employee;
/**
 * Interface for employee IdentityMap
 * @author robert
 *
 */
public interface IEmployeeIdentityMap {
	/** 
	 * Put an employee on the IdentityMap. If it already exist in the 
	 * IdentityMap, it replaces it.
	 * @param emp 
	 */
	public void put(Employee emp) throws Exception;
	
	/**
	 * Return the employee with the given id from the IdentityMap, or null if
	 * there is no employee with that id.s
	 * @param id
	 * @return employee
	 */
	public Employee get(Integer id) throws Exception;
	
	/**
	 * Remove employee from IdentityMap
	 * @param emp
	 * @throws Exception
	 */
	public void remove(Employee emp) throws Exception;
	
	/**
	 * Return number of employees in map.
	 * @return number of employees
	 * @throws Exception
	 */
	public Integer size() throws Exception;
	
	/**
	 * Get all employees from the map
	 * @return list of all employees
	 * @throws Exception
	 */
	public List<Employee> getAll() throws Exception;
	
}
